Stepper motors are well known in the art and are used in a wide variety of devices, including printers, disk drives, and other devices requiring precise positioning of an element. Stepper motors provide many advantages over other types of motors, most notably the ability to rotate through controlled angles of rotation, called steps, based on command pulses from a driver circuit. The accuracy of the stepped motion produced by a stepper motor is generally very good, since there is not a cumulative error from one step to another. The ability to incrementally rotate a shaft through a defined number of fixed steps enables stepper motors to be used with open-loop control schemes (i.e., applications in which a position feedback device such as an optical encoder or resolver is unnecessary), thereby simplifying the motion control system and reducing costs.
The speed of stepping motors can be readily controlled based on the pulse frequency employed, enabling stepping motors to achieve variable speed synchronous movement of a load that is directly coupled to the drive shaft of the motor. Furthermore, stepper motors are reliable, since they do not include contact brushes that can wear out. Typically, the only parts in a stepper motor susceptible to wear are the motor bearings.
Stepper motors generally have two phases, but three, four and five-phase motors also exist. FIG. 1 shows a typical two-phase motor, comprising a stator A and a stator B, each of which produce a magnetic flux with opposite poles at end faces 300 when a respective phase A winding 302 and phase B winding 304 are energized with an electric current. The direction of the magnetic flux is determinable by applying the "right-hand rule." In FIG. 1, a current I.sub.B flows through the phase B windings, creating a magnetic flux in stator B, as indicated by the directions of the arrows. This flux produces a torque applied to the rotor, causing the rotor to turn so that the magnetic field produced by the poles in the rotor are aligned with the magnetic field produced by stators A and B. In this case, the rotor will rotate clockwise so that its south pole aligns with the north pole of stator B at a position 2, and its north pole aligns with the south pole of stator B at a position 6. To continually rotate the rotor, current is applied to the phase A and phase B windings in a predetermined sequence, producing a rotating magnetic flux field.
Stepper motors are typically positioned by a sequence of command pulses that are received by a drive circuit portion of a stepper motor driver, which produces outputs signals to drive the stator windings (i.e., "coils" in the motor). This sequence of command pulses corresponds to one of the four drive modes that are typically used to move and position stepper motors, including the wave drive (one phase on), full-step drive (two phases on), half-step drive (one and two phases on), and microstepping (continuously varying phase currents). The following discussion of these various drive modes are made with reference to FIGS. 2A-2B and 3A-3B.
FIG. 3A shows a typical six-wire unipolar drive circuit. In order to drive a unipolar stepper motor, it is necessary to energize the windings of the motor in a predetermined sequence. This procedure can be accomplished through the use of four switches 50, 52, 54, and 56 (e.g., Darlington pair switches or field-effect transistors), each of which is connected to ground at one terminal, and connected to a respective winding at the other terminal. A positive supply voltage is provided at common or center taps 58 and 60. Current can be caused to flow through windings corresponding to motor phases A, A, B, and B by respectively closing switches 50, 52, 54, and 56, each of which provides a path to ground through their corresponding winding. When current flows through the windings, a magnetic field is generated in accord with the right-hand rule, as discussed above, which causes the motor rotor to rotate so that it is aligned with the magnetic fields generated by stators A and B.
A somewhat more complex scheme is used for driving a bipolar motor. As shown in FIG. 3B, a typical bipolar drive circuit comprises a pair of H-bridge circuits, one for each winding. Each of the H-bridge circuits comprises four switches 62, 64, 66, and 68. The branches at the top of the bridges are connected to a positive supply voltage, while the branches at the bottom of the bridges are connected to ground. By selectively closing the H-bridge switches, current can be caused to flow through windings 70 and 72 in a desired direction, thereby producing motor phases A, A, B, and B. For example, to produce a current flow in winding 70 from right to left (i.e., motor phase A), switches 64 and 66 are closed, while switches 62 and 68 are kept open.
In a wave drive for a stepper motor, only one winding is energized at any given time. The windings on the stators are energized according to the sequence A.fwdarw.B.fwdarw.A.fwdarw.B, causing the rotor to step through positions 8.fwdarw.2.fwdarw.4.fwdarw.6. For unipolar and bipolar wound motors with the same winding parameters, this excitation mode will result in the same mechanical position of the rotor. The disadvantage of this drive mode is that in a unipolar wound motor, only 25% of the total motor winding is energized at any given time, and in a bipolar motor, only 50% of the total motor winding is used. Thus, the maximum potential torque output of the motor is not realized.
In a full-step drive for a stepper motor, two phases are energized at any given time. The windings on the stators are energized according to the sequence AB.fwdarw.AB.fwdarw.A B.fwdarw.AB, causing the rotor to step through positions 1.fwdarw.3.fwdarw.5.fwdarw.7. When using the full-step mode, the angular movement will be the same as was discussed above for a wave drive, but the mechanical position is offset by one-half step. The torque output of a unipolar wound motor when using full-stepping is lower than for a bipolar motor (i.e., for motors with the same winding parameters), since the unipolar motor uses only 50% of the available winding, while the bipolar motor uses the entire winding.
The half-step drive mode combines both wave and full-step (one and two phases on) drive modes. As shown in TABLE 1 (below), the number of phases that are energized alternates between one and two phases during every other step. The windings on the stators are energized according to the sequence AB.fwdarw.B.fwdarw.AB.fwdarw.A.fwdarw.A B.fwdarw.B.fwdarw.AB.fwdarw.A, causing the rotor to step through positions 1.fwdarw.2.fwdarw.3.fwdarw.4.fwdarw.5.fwdarw.6.fwdarw.7.fwdarw.8. This procedure results in angular movements that are half of those discussed above for wave and full-step drive modes. Half-stepping can reduce a phenomena referred to as resonance, which sometimes occurs when using the wave or full-step drive modes at certain step rates.
TABLE 1 Normal Full-Step Wave Drive Drive Half-step Drive Phase 1 2 3 4 1 2 3 4 1 2 3 4 5 6 7 8 A .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. B .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. A .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. B .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid. .circle-solid.
Resonance can be observed as a sudden loss or drop in torque at certain speeds, which can result in missed steps or loss of synchronism, and creates undesired noise and motor vibration. Resonance generally occurs when the input step pulse rate coincides with the natural frequency of a stepper motor, or multiples thereof. Often, there is a resonance area around the 100-200 pulse per second region and also, a resonance area toward the maximum stepping rate of the motor.
The natural frequency, F.sub.0 (Hz), of a stepper motor is determined by the rotor and load inertia, J.sub.T =J.sub.R +J.sub.L (Kgm.sup.2), holding torque, T.sub.H (Nm) (with the selected driving mode and current levels), and number of full-steps per revolution (n). EQU F.sub.0 =(n.times.T.sub.H.div.J.sub.T).sup.0.5.div.4.pi. (1)
If the motor damping is low, there is a clear risk of losing steps or generating noise when the motor is operated at or near the natural frequency. Depending on motor type, total inertia, and damping, this problem can also appear at or close to integer multiples and fractions of F.sub.0, e.g., F.sub.0 /4, F.sub.0 /3, F.sub.0 /2, 2F.sub.0, 3F.sub.0, 4F.sub.0 etc. Normally, the frequencies closest to F.sub.0 create the most problems.
When a non-microstepping driver is used, the main cause of these resonances is that the stator flux is moved in a discontinuous increment of 90 (full-step mode) or 45 (half-step mode) electrical degrees at a time. This movement exerts a pulsing torque on the rotor, which excites the resonance. The energy transferred to the rotor, when a single step is taken, is in the worst case (no load friction), equal to: EQU (4T.sub.H.div.n).times.[1-cos(f.sub.e)] (2)
wherein T.sub.H and n are as above and f.sub.e is the electrical step angle, i.e., 90.degree. for a full-step, 45.degree. for a half-step. This equation shows that using half-steps instead of full-steps reduces the excitation energy to approximately 29% of the full-step energy. Furthermore, if the motor is microstepped using 1/32 steps, only 0.1% of the full-step energy is used.
From the foregoing, it will be apparent that there is a direct correlation between rotor torque discontinuities and resonance. Ideally, if a motor could be driven so as to produce a constant motor torque, there would be no resonance. In theory, it would be possible to provide a constant rotor torque in a two-phase stepper motor if the waveforms of the currents in the motor windings were two sinusoids, 90.degree. out of phase (actual stepper motors approach, but do not produce this ideal result). A common way to produce winding currents that approach these ideal sinusoidal waveforms is to use microstepping, wherein the currents supplied to the motor windings are stepped in small increments to produce a pseudo-sinusoidal current waveform.
An inherent drawback to microstepping is that it generally requires relatively complex control circuitry to implement. In a typical microstepping driver, a dedicated logic circuit, e.g., a microprocessor, microcontroller, ASIC, or DSP, is used to provide control signals to a driver circuit, which provides current to the windings (i.e., phases) of the stepper motor in accord with a predetermined sequence. The current command control signals are generally in the form of a voltage level or a pulse-width modulated signal. A common way to implement the simulated sinusoidal waveform discussed above is for the microprocessor to provide a digital signal to a digital-to-analog converter (DAC) at fixed time intervals corresponding to the stepping rate of the motor. For example, if it is desired to step a motor at 200 (full) steps/sec, and the microstepping level is 1/32 of a step, then the microprocessor would have to provide an updated current command signal at a rate of 32*200=6400 times per second (every 156 .mu.s). Thus, if it is desired to use the microprocessor for carrying out another task simultaneously, the other task would have to be interrupted 6400 times a second to service the motor control requirements. This problem becomes worse because it is usually desirable to drive a motor at a variety of different speeds, each of which correspond to a different update rate. As a result, the sharing of the microprocessor for other tasks is often impractical, and may be impossible if the other task or tasks have their own timing requirements that cannot readily be interrupted in this manner.
Another method for minimizing the effect of resonance is to drive a stepper motor with a trapezoidal signal. As discussed above, resonance and noise is primarily caused by discontinuities (i.e., step changes) in the current levels flowing through the motor windings, which cause the rotor to "jerk" as it is stepped. Since a trapezoidal signal is stepless, it contains no discontinuities, and therefore greatly reduces resonance and noise problems.
As with microstepping, motor controllers that implement trapezoidal drive schemes are often complex, requiring the use of dedicated circuitry and typically requiring substantial processing overhead to obtain the desired trapezoidal drive current waveforms. It would therefore be desirable to provide a trapezoidal drive scheme that requires a substantially reduced processor workload, while minimizing the effects of resonance and noise.